#!/usr/bin/env python

#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#

from common import *

common_args = "--log-enable=debug+:Bridge"
module_args = None
test_args = "-i *_xml"

sys_test_args = [
    "-i federation_sys.A_Long*",
    "-i federation_sys.B_Long*",
    "-i federation_sys.C_*",
    "-i federation_sys.D_*",
    "-i federation_sys.E_*",
    "-i federation_sys.F_*",
    "-i federation_sys.G_*",
    "-i federation_sys.H_*",
]

if XML_LIB is not None:
    module_args = "--load-module {0}".format(XML_LIB)
    test_args = None

local_port = start_broker("local", common_args, module_args, "--federation-tag LOCAL")
remote_port = start_broker("remote", common_args, module_args, "--federation-tag REMOTE")
remote_b1 = start_broker("remote_b1", common_args, module_args, "--federation-tag REMOTE_B1")
remote_b2 = start_broker("remote_b2", common_args, module_args, "--federation-tag REMOTE_B2")

run_broker_tests(local_port, "-m federation",
                 "-Dremote-port={0}".format(remote_port),
                 "-Dextra-brokers='{0} {1}'".format(remote_b1, remote_b2),
                 test_args)

run_broker_tests(local_port, "-m headers_federation", "-Dremote-port={0}".format(remote_port))

run_broker_tests(remote_port, "-m federation_sys",
                 "-Dlocal-port={0}".format(local_port),
                 "-Dremote-port={0}".format(remote_port),
                 *sys_test_args)

check_results()
